import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

// 商品实体
@Entity()
export class Goods {
    // 商品自增id
    @PrimaryGeneratedColumn()
    id: number;

    // 商品名
    @Column('varchar', { length: 64, nullable: false })
    name: string;

    // 商品描述
    @Column('varchar', { length: 256, nullable: false })
    description: string;

    // 价格， 单位：分
    @Column('int', { nullable: false })
    price: number;

    // 原价， 单位：分
    @Column('int', { nullable: false })
    originalPrice: number;

    // 时长单位, 如果商品无限时长为 null
    @Column('varchar', { length: 16, nullable: true })
    durationUnit: string;

    // 时长, 如果商品无限时长为 null
    @Column('int', { nullable: true })
    duration: number;

    // 是否永久商品 
    @Column('boolean', { default: false })
    isPermanent: boolean;

    // 是否可重复购买
    @Column('boolean', { default: true })
    isRepurchaseable: boolean;

    // 首次插入时间
    @Column('timestamp', { default: () => 'CURRENT_TIMESTAMP' })
    createTime: Date;

    // 更新时间
    @Column('timestamp', { default: () => 'CURRENT_TIMESTAMP', onUpdate: 'CURRENT_TIMESTAMP' })
    updateTime: Date;
}
